﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using DataAccessLayer;
using Entities;
using BusinessLogicLayer;

namespace QuanLyTKB_TienDoGD.QuanLyTaiKhoan
{
    public partial class frmDoiMatKhau : Office2007Form
    {
        private IRepository<TaiKhoan> _repository;  // khai báo thuộc tính _repository
        private TaiKhoanManager _manager;   // khai báo thuộc tính _manager
        private TaiKhoan tk;    // khai báo thuộc tính tk
        public frmDangNhap frm;    // khai báo thuộc tính frm

        public string User = "";    // khai báo thuộc tính User
        public string Pass = "";    // khai báo thuộc tính Pass

        public frmDoiMatKhau()
        {
            InitializeComponent();
        }

        /// <summary>
        /// phương thức hiển thị tài khoản
        /// </summary>
        public void HienThiTaiKhoan()
        {
            List<TaiKhoan> ds = _repository.GetAll().ToList();
            for (int i = 0; i < ds.Count; i++)
            {
                User = ds[i].Username;
                Pass = ds[i].Password;
            }
        }
        /// <summary>
        /// xự kiện load của form
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void frmDoiMatKhau_Load(object sender, EventArgs e)
        {
            _repository = new Repository<TaiKhoan>();
            _manager = new TaiKhoanManager(_repository);
            HienThiTaiKhoan();
        }

        /// <summary>
        /// xử lý sự kiện khi nhấn vào buttom đồng ý
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnDongY_Click(object sender, EventArgs e)
        {
            frm = new frmDangNhap();
            if (txtMatKhauCu.Text == Pass || txtMatKhauCu.Text == frm.PassHeThong)
            {
                if (txtNhapLaiMatKhauMoi.Text == txtNhapMatKhauMoi.Text)
                {
                    tk = new TaiKhoan();
                    tk.Username = User;
                    tk.Password = txtNhapLaiMatKhauMoi.Text;
                    var result = _manager.Validate(tk);
                    if (result.Valid)
                    {
                        var actionresult = _manager.InsertOrUpdate(tk);
                        if (actionresult.Success)
                        {
                            MessageBox.Show("Cập nhật tài khoản thành công.", "Thông Báo");
                            btnHuyBo_Click(sender, e);
                        }
                        else
                        {
                            MessageBox.Show("Cập nhật tài khoản thất bại.", "Thông Báo");
                        }
                    }
                    else
                    {
                        MessageBox.Show("Dữ liệu nhập vào không đúng. \nVui lòng kiểm tra lại", "Thông báo");
                    }
                }
                else {
                    MessageBox.Show("Nhập lại mật khẩu mới không đúng. \nVui lòng nhập lại.", "Thông Báo");
                    txtNhapMatKhauMoi.ResetText();
                    txtNhapLaiMatKhauMoi.ResetText();
                    
                }
            }
            else
            {
                MessageBox.Show("Mật khẩu cũ không đúng. \nVui lòng nhập lại.", "Thông báo");
                txtMatKhauCu.ResetText();
                txtNhapMatKhauMoi.ResetText();
                txtNhapLaiMatKhauMoi.ResetText();
            }

        }

        /// <summary>
        /// xử lý sự kiện khi nhấn vào buttom hủy
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnHuyBo_Click(object sender, EventArgs e)
        {
            this.Close();
        }
        
       
      
    }
}
